\section{idelete}

使用idelete删除一个中断，它会同时删除中断事件和中断变量的绑定以及中断变量和中断处理函数的连接关系。

\subsection*{原型}
\begin{verbatim}
void idelete(intnum& interrupt)
\end{verbatim}

\subsubsection*{interrupt}
intnum引用类型。参数为所删除的中断对应的中断变量。

\subsubsection*{返回值}
无。

\subsection*{例子}

\begin{verbatim}
shared num svn;
intnum timer_int;

void main() {
    iconnect(timer_int, ftrap);
    itimer(0.5, timer_int);
    waittime(0.75);

    idelete(timer_int);

    waittime(1.0);
    print("svn: %n\n", shared_num_read(svn));
}

void ftrap() {
    shared_num_add(svn, 1.0);
}
\end{verbatim}

\section{idisable}

使用idisable禁止对后续执行中的所有中断的处理。

\subsection*{原型}
\begin{verbatim}
void idisable()
\end{verbatim}

\subsubsection*{返回值}
无。

\subsection*{例子}

\begin{verbatim}
intnum timer_int;
void main() {
    iconnect(timer_int, ftrap);
    itimer(0.5, timer_int);

    idisable();

    waittime(0.6);
    print("this happend after the first timer interrupt.\n");
    ienable();
}
void ftrap() {
	print("caught timer interrupt!\n");
}
\end{verbatim}

\section{ienable}

使用ienable使能对后续执行中的所有中断的处理。

\subsection*{原型}
\begin{verbatim}
void ienable()
\end{verbatim}

\subsubsection*{返回值}
无。

\subsection*{例子}

参考idisable的示例。

\section{ipers}

订阅持久量中断。当指定的持久变量发生变化时，会引发一个中断。

\subsection*{原型}
\begin{verbatim}
void ipers(anytype& pvar, intnum& interrupt, singlemode mode = singlemode::cyclic)
\end{verbatim}

\subsubsection*{pvar}
任意类型。参数为需要监视的持久变量。

\subsubsection*{interrupt}
intnum引用类型。将持久变量修改时的中断事件和此参数代表的中断变量进行绑定。

\subsubsection*{mode}
singlemode类型。指定中断事件的触发周期。

\subsubsection*{返回值}
无。

\subsection*{例子}

\begin{verbatim}
num count = 0;
pers num pnum = 10;
intnum pers_int;
void main() {
    iconnect(pers_int, ftrap);
    ipers(pnum, pers_int);
    pnum = 20;
    isleep(pers_int);
    pnum = 30;
    iwatch(pers_int);
    pnum = 10;
    
    print("count: %n\n", count);
}
void ftrap() {
    count = count + 1.0;
}
\end{verbatim}

\section{isleep}

使用isleep禁止对后续执行中的指定中断的处理。

\subsection*{原型}
\begin{verbatim}
void isleep(intnum& interrupt)
\end{verbatim}

\subsubsection*{interrupt}
intnum引用类型。参数为所禁止的中断对应的中断变量。

\subsubsection*{返回值}
无。

\subsection*{例子}

参考ipers的示例。

\section{itimer}

订阅定时器中断。当定时器的时长耗尽时，会引发一个中断。

\subsection*{原型}
\begin{verbatim}
void itimer(num interval, intnum& interrupt, singlemode mode = singlemode::cyclic)
\end{verbatim}

\subsubsection*{interval}
num类型。参数为定时器的定时间隔。

\subsubsection*{interrupt}
intnum引用类型。将定时器的中断事件和此参数代表的中断变量进行绑定。

\subsubsection*{mode}
singlemode类型。指定中断事件的触发周期。

\subsubsection*{返回值}
无。

\subsection*{例子}

参考idisable的示例。

\section{iwatch}

使用iwatch使能对后续执行中的指定中断的处理。

\subsection*{原型}
\begin{verbatim}
void iwatch(intnum& interrupt)
\end{verbatim}

\subsubsection*{interrupt}
intnum引用类型。参数为所使能的中断对应的中断变量。

\subsubsection*{返回值}
无。

\subsection*{例子}

参考ipers的示例。
